課程資訊
課程名稱
惡意程式逆向分析
Malware Reverse Engineering and Analysis 
開課學期
109-1 
授課對象
電機資訊學院  電機工程學研究所  
授課教師
田謹維 
課號
CommE5059 
課程識別碼
942 U0730 
班次
 
學分
4.0 
全/半年
半年 
必/選修
選修 
上課時間
星期二7,8,9,10(14:20~18:20) 
上課地點
博理114 
備註
與林宗男合授
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1091CommE5059_ 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

惡意程式一直以來都是企業所面臨的重大資安威脅,企業往往需要投入大量的 資金來進行偵測防禦,然而這場攻防的”遊戲”是沒有盡頭的,攻擊者總會試圖利 用各種攻擊方式來達到想要的目的,因此如何了解並分析惡意程式,是資安領域很重要的一個環節,本課程從基礎概念、環境架設至 windows 可執行檔的惡意程式分析開始,讓學生能透過逆向工程了解惡意程式攻擊手法,透過 IDA Pro 、Ghidra及其他工具的操作交叉分析還原出攻擊者/惡意程式的企圖,最終引導學生可完成一份完整的惡意樣本分析報告,建立惡意程式分析實務能力,搭配作業與期末專題的研討,呈現資安技術能力證明。 

課程目標
1.學習惡意程式分析手法
2.熟悉惡意程式分析工具操作
3.建立惡意程式逆向分析報告產製能力
 
課程要求
1.具備資訊安全基礎能力
2.對組合語言撰寫有基礎認識
3.作業系統、編譯器等課程先修
 
預期每週課後學習時數
 
Office Hours
另約時間 備註: can be reserved by e-mail 
指定閱讀
Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software, 1st 
參考書目
1.Learning Malware Analysis: Explore the concepts, tools, and techniques to analyze and investigate Windows malware, 1st
2.Malware Analyst's Cookbook: Tools and Techniques for Fighting Malicious Code, 1st
3.The IDA Pro Book, 2nd Edition
4.Malware Data Science: Attack Detection and Attribution, 1st

 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
課堂Lab 
10% 
每次授課3小時,1小時課堂Lab 
2. 
平時作業 
30% 
6個平時作業 
3. 
上機考試 
30% 
 
4. 
期末專題 
30% 
小組專題,3人一組 
 
課程進度
週次
日期
單元主題
第1週
9/15  課程說明&環境整備 
第2週
9/22  惡意程式逆向分析基礎
- Basic Static Techniques
- Malware Analysis in VM
- Basic Dynamic Analysis
 
第3週
9/29  惡意程式靜態分析技巧(1)
- x86 Disassembly
- IDA Pro Exercises
- C Constructs in Assembly
 
第4週
10/06  惡意程式靜態分析技巧(2)
- Analyzing Malicious Programs
- Ghidra Introduction

 
第5週
10/13  進階惡意程式動態分析 (1)
- Debugging Techniques
- Ollydbg for Dynamic Analysis
 
第6週
10/20  進階惡意程式動態分析 (2)
- Windbg for Kernel Debugging
 
第7週
10/27  惡意程式行為分析 (1)
- Downloaders and Launchers
- Backdoors
- Credential Stealers
- User-Mode Rootkits 
第8週
11/03  惡意程式行為分析 (2)
- Data Encoding
- Malware Focused Network Signatures 
第9週
11/10  期中考週
- Final Project Proposal
 
第10週
11/17  惡意程式記憶體分析
- Volatility Overview
- Investigating Process
- Investigating Network Activities
- Kernel Modules and Rootkit Analysis 
第11週
11/24  Shellcode分析
- Loading Shellcode for Analysis
- Identifying Execution Location
- Shellcode Encodings 
第12週
12/01  惡意程式反偵測手法 (1)
- Anti-disassembly
- Anti-debugging 
第13週
12/08  惡意程式反偵測手法 (2)與64-bit惡意程式分析
- Anti-VM
- Packers and Unpacking
- Differences in x64 Architecture
- 64-Bit Hints at Malware Functionality 
第14週
12/15  惡意元件分析- 網頁、文件、腳本與C++
- Interacting with malicious websites
- De-obfuscating malicious Javascript
- Malicious pdf document analysis
- Macros in malicious office documents 
第15週
12/22  惡意程式AI分析
- Review of M.L. approaches for malware analysis
- Features in a traditional M.L. workflow
- Research directions such as deep learning and multimodal approaches
 
第16週
12/29  上機考試 
第17週
1/05  期末專題報告